package com.wh.maker.template.model;


import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;


/**
 * 模板制作模型配置类
 * <p>用于配置代码生成模板的模型信息，包含模型字段配置和模型分组配置</p>
 *
 *
 * @models 模型信息配置列表
 * <br>   - fieldName 字段名称
 * <br>    - type 字段类型
 * <br>    - description 字段描述
 * <br>    - defaultValue 默认值
 * <br>    - abbr 字段缩写
 * <br>    - replaceText 需要替换的文本内容
 * @modelGroupConfig 模型分组配置
 * <br>    - condition 分组条件
 * <br>    - groupKey 分组键
 * <br>    - groupName 分组名称
 */
@Data
public class TemplateMakerModelConfig {
    private List<ModelInfoConfig> models;
    private ModelGroupConfig modelGroupConfig;


    /**
     * 模型信息配置内部类
     * <p>用于配置单个模型字段的详细信息</p>
     */
    @NoArgsConstructor
    @Data
    public static class ModelInfoConfig {
        private String fieldName;
        private String type;
        private String description;
        private Object defaultValue;
        private String abbr;
        // 用于替换哪些文本
        private String replaceText;
    }

    /**
     * 模型分组配置内部类
     * <p>用于配置模型的分组信息</p>
     */
    @NoArgsConstructor
    @Data
    public static class ModelGroupConfig {
        private String condition;
        private String groupKey;
        private String groupName;
        private String type;
        private String description;
    }
}